The invention relates to the transmission of fonts to a hardcopy device. More particularly, the invention relates to the transmission of fonts to a hardcopy device using a page description language.
Continual advances in computer technology are making possible cost-effective computers capable of displaying images and text at high resolution. Concurrently, user friendly operating systems with a graphical user interface (GUI) have been developed to take advantage of computer hardware. These operating systems support multiple fonts which allows users to be more proficient and effective at tasks such as desktop publishing.
The multi-font capability on GUI operating systems in turn is driving the demand for high resolution hard copy devices or printers. Typically, a computer sends data to a hard copy device such as a printer in the form of characters or images to be printed. For characters, the printer receives the character data and places ink onto a sheet of paper in accordance with glyphs associated with the characters. Glyphs are objects which specify exact shapes of characters. In this context, a font is a collection of glyphs, all of a similar design.
Early printers had a limited number of fonts and characters in their character generators. The characters were typically laid out in matrix structures known as bitmaps, or rectangular arrays of bits where each bit represents a pixel that may be turned on during the generation of that character onto paper. Originally, the bitmaps were stored in Read Only Memory (ROM) devices. However, as only a fixed number of fonts may be supported by the ROM device, Random Access Memory (RAM) devices were added to allow fonts to be downloaded from the computer to the printer. To provide more flexibility and higher quality output, page description languages were developed whereby a page with graphics, text, and images that may be positioned anywhere on the page, and in any order, is represented using successive commands of the page description language.
One popular page description language is the PostScript.RTM. page description language available from Adobe Systems, Inc. of San Jose, California. The PostScript.RTM. page description language is described in more detail in a document entitled PostScript Language Reference Manual, 2d. ed. (1993), available from Adobe Systems, Inc., and hereby incorporated by reference. In PostScript.RTM. compatible printers, after receiving the commands, a desired image is rasterized so that a print engine in the printer can generate the page by turning on or off a series of individual dots or pixels across the printed page in a raster scan line.
In certain personal computers which work with a Microsoft Windows 95.RTM. operating system available from Microsoft Corporation of Redmond, Washington, applications may specify a host system font such as a TrueType font or a PostScript.RTM. font. During printing, the TrueType or PostScript.RTM. line layout determination requires accesses to font specific glyphs and thus these glyphs need to be downloaded to the printer. Generally, when an application sends glyph data with the host font to a PostScript.RTM. compatible printer, software drivers on the computer may convert host font glyphs into unscalable bitmaps, unhinted outlines, or native TrueType or PostScript.RTM. font data into PostScript.RTM. formatted data. The driver software may analyze glyph usage within a document, determine glyph dependencies, and send only the glyphs required for the current print job to the printer. However, such an approach may require a significant amount of host memory storage and processor capacity. Moreover, such an approach may greatly increase the amount of data being sent to the printer. As such, the printer may require a substantial amount of memory to handle the data stream generated by the computer. Such memory requirements may also cause the software driver to free previously used memory in the printer in order to allocate space for the additional glyphs. However, in the event that subsequent commands access a released glyph, the released glyph must be resent to the printer. Hence, the computer and the printer's throughputs may be substantially reduced.